﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Extensions.DependencyInjection;
using System.Threading.Tasks;

namespace Clinic.Ioc
{
    public class ServiceRegistry : IServiceRegistry
    {
        IServiceCollection service;
        public ServiceRegistry()
        {
            service = new ServiceCollection();
        }
        public bool IsRegistered(Type type)
        {
            service.get
        }

        public bool IsRegistered(Type type, string name)
        {
            throw new NotImplementedException();
        }

        public IServiceRegistry Register(Type from, Type to)
        {
            throw new NotImplementedException();
        }

        public IServiceRegistry Register(Type from, Type to, string name)
        {
            throw new NotImplementedException();
        }

        public IServiceRegistry Register(Type type, Func<object> factoryMethod)
        {
            throw new NotImplementedException();
        }

        public IServiceRegistry Register(Type type, Func<IServiceProvider, object> factoryMethod)
        {
            throw new NotImplementedException();
        }

        public IServiceRegistry RegisterInstance(Type type, object instance)
        {
            throw new NotImplementedException();
        }

        public IServiceRegistry RegisterInstance(Type type, object instance, string name)
        {
            throw new NotImplementedException();
        }

        public IServiceRegistry RegisterMany(Type type, params Type[] serviceTypes)
        {
            throw new NotImplementedException();
        }

        public IServiceRegistry RegisterManySingleton(Type type, params Type[] serviceTypes)
        {
            throw new NotImplementedException();
        }

        public IServiceRegistry RegisterScoped(Type from, Type to)
        {
            throw new NotImplementedException();
        }

        public IServiceRegistry RegisterScoped(Type type, Func<object> factoryMethod)
        {
            throw new NotImplementedException();
        }

        public IServiceRegistry RegisterScoped(Type type, Func<IServiceProvider, object> factoryMethod)
        {
            throw new NotImplementedException();
        }

        public IServiceRegistry RegisterSingleton(Type from, Type to)
        {
            throw new NotImplementedException();
        }

        public IServiceRegistry RegisterSingleton(Type from, Type to, string name)
        {
            throw new NotImplementedException();
        }

        public IServiceRegistry RegisterSingleton(Type type, Func<object> factoryMethod)
        {
            throw new NotImplementedException();
        }

        public IServiceRegistry RegisterSingleton(Type type, Func<IServiceProvider, object> factoryMethod)
        {
            throw new NotImplementedException();
        }
    }
}
